package com.adisi.objetos;

import java.util.ArrayList;
import java.util.Date;

public class Jornada {
	
	private int id=0;
	private Auto auto;
	private Chofer chofer;
	private Date fechaInicial;
	private Date fechaFinal;
	
	private JornadaEstado estado;
	
	private ArrayList<Viaje> viajes;
	
	private Turno turno;
	
	
	public Jornada()
	{
		super();
	}
	
	public Jornada(int id, Chofer chofer, Auto auto){
		this.id = id;
		this.auto = auto;
		this.chofer = chofer;
		
		fechaInicial = new Date();
		
		estado = JornadaEstado.DISPONIBLE;
		
		viajes = new ArrayList<Viaje>();
	}
	
	public Jornada(int id, Chofer chofer, Auto auto, Date fechaInicial, Date fechaFinal, JornadaEstado estado, Turno turno){
		this.id = id;
		this.auto = auto;
		this.chofer = chofer;
		
		this.fechaInicial = fechaInicial;
		this.fechaFinal = fechaFinal;
		
		this.estado = estado;
		this.turno = turno;
		
		viajes = new ArrayList<Viaje>();
	}
	
	public int getId(){
		return id;
	}
	
	public void setEstado(JornadaEstado estado)
	{
		this.estado = estado;
	}

	public JornadaEstado getEstado()
	{
		if(getViajeActual()!=null)
			return JornadaEstado.VIAJANDO;
		return estado;
	}
	
	public void setFechaInicial(Date fechaInicial)
	{
		this.fechaInicial = fechaInicial;
	}
	
	public Date getFechaInicial()
	{
		return fechaInicial;
	}
	
	public void setFechaFinal(Date fechaFinal)
	{
		this.fechaFinal = fechaFinal;
	}
	
	public Date getFechaFinal()
	{
		return fechaFinal;
	}
	
	public Auto getAuto()
	{
		return auto;
	}

	public Chofer getChofer()
	{
		return chofer;
	}

	public void setAuto(Auto auto) {
		this.auto = auto;
	}

	public void setChofer(Chofer chofer) {
		this.chofer = chofer;
	}

	public ArrayList<Viaje> getViajes() {
		return viajes;
	}

	public void setViajes(ArrayList<Viaje> viajes) {
		this.viajes = viajes;
	}
	
	public Viaje getViajeActual() {
		for(Viaje viaje: viajes) {
			if(viaje.getEstado() == EstadoViaje.VIAJANDO)
				return viaje;
		}
		return null;
	}

	public Turno getTurno() {
		return turno;
	}

	public void setTurno(Turno turno) {
		this.turno = turno;
	}
	
}
